package main

import (
	"flag"
	"fmt"
)

/*
  定义命令行参数:
  通过 flag.String，定义一个 mode 变量，这个变量的类型是 *string。后面 3 个参数分别如下：
    1. 参数名称：在给应用输入参数时，使用这个名称。
    2. 参数值的默认值：与 flag 所使用的函数创建变量类型对应，String 对应字符串、Int 对应整型、Bool 对应布尔型等。
    3. 参数说明：使用 -help 时，会出现在说明中。

  使用: go run demo6/main.go --mode=fast
*/

// 形式1： mode 只是指向数据的指针，需要用 *mode 来获取值
var mode = flag.String("mode", "", "process mode")

var name string

func main() {
	// 形式2: 绑定到变量
	flag.StringVar(&name, "name", "sxt", "your name")
	// 解析命令行参数
	flag.Parse()

	// 输出命令行参数
	fmt.Println(*mode)
	fmt.Println(name)
}
